home *** CD-ROM | disk | FTP | other *** search
- %! page_title.ps - A fancy titlepage for a document
- %% This is a LameTeX Page Description File written in PostScript.
- %% Postscript Code by Jon Monsarrat Copyright 1992
- %% permission given for anything except selling this or deleting the header.
- %% This is a page template for the LameTeX formatter
- %% A normal page for LameTeX output to look like LaTeX output
-
- %% REQUIRED DEFINITIONS START HERE %%
-
- % Makes a path that desribes the page and leaves a setflat value on the stack.
- /PageShape
- {
- 0 0 moveto 8.5 in 0 lineto 8.5 in 11 in lineto 0 11 in lineto closepath
- currentflat 8 mul
- } bind def
-
- /StartPage
- {
- %%%%%%%%%%%%%%%% string Weird-Stuff %%%%%%%%%%%%%%%%%%%%%%%%%%
- % Weird-Stuff puts some fancy border stuff in around a given string
- /Weird-Stuff
- {
- save
- %%%%%%%%%%%%%%%% num num block %%%%%%%%%%%
- % width and X position
- /Block
- {
- 0 moveto dup 0 rlineto
- .35 in .7 in rlineto -1 mul 0 rlineto
- closepath 1 setgray fill 0 setgray
- } bind def
- %%%%%% end of Block %%%%%%%%%%%%%%%%
-
- 0.6 setgray
- exch /name exch def
- 90 rotate 0 -1.1 in translate
- /bit {.02 in} def
- gsave
-
- 2 in 0 translate
- .7 in dup scale
- 1 3 in div setlinewidth
-
- /Thick 1 8 div def
- /Tall 1 def
- /HalfThick Thick .5 mul def
-
- newpath
- HalfThick Thick moveto
- Thick 0 lineto
- 1 Thick sub 0 lineto
- 1 HalfThick sub Thick lineto
- .5 HalfThick add Tall Thick sub lineto
-
- 1 Thick sub 0 moveto
- .5 HalfThick add Tall 3 Thick mul sub lineto
- Thick 3 mul Thick 2 mul lineto
-
- 1 Thick 2.5 mul sub Thick moveto
- .5 Tall Thick 4 mul sub lineto
- stroke
-
- newpath
- HalfThick Thick moveto
- 1 Thick 2.5 mul sub Thick lineto
- HalfThick neg Thick rlineto
- Thick Thick add Thick Thick add lineto
- .5 HalfThick add Tall Thick sub lineto
- Thick neg 0 rlineto
- closepath
- fill
- grestore
- /Times-BoldItalic findfont 90 scalefont setfont
- gsave 2.65 in 0 moveto 1 .5 scale
- -.07 in 0 name ashow grestore
- gsave 2.65 in .625 in moveto 1 -.22 scale
- -.07 in 0 name ashow grestore
- newpath .3 in 0 moveto 1.9 in 0 lineto
- 2.25 in .64 in lineto .3 in .64 in lineto
- .5 in .32 in lineto closepath fill
- 6.4 in 0 moveto 8.9 in 0 lineto 8.8 in -.2 in lineto
- 9.5 in .32 in lineto 8.8 in .84 in lineto
- 8.9 in .64 in lineto 6.75 in .64 in lineto closepath fill
- .05 in .7 in Block
- .08 in 1.1 in Block
- .11 in 1.5 in Block
- .1 in 6.8 in Block
- .15 in 7.3 in Block
- .2 in 7.7 in Block
- .2 in 8 in Block
- .1 in 8.25 in Block
- restore
- } bind def
-
- %%%%%%%%%%%%% num num circle - %%%%%%%%%%%%%%%%%%%%%%%%
- % circle fills & strokes a small white circle around current point
- /circle { currentpoint .1 in 0 rmoveto .1 in 0 360 arc
- 1 setgray fill } def
-
- /StringBuffer 10 string def
-
- %%%%%%%%%%%%%%%% string Shade - %%%%%%%%%%%%%%%%%%%%%%%%
- % Shade prints a shaded character at the current position
- % .8 top .1 bot gray
- /Shade
- {
- currentpoint /aty exch def /atx exch def
- gsave
- dup true charpath clip (Mg) true charpath pathbbox
- exch 4 -1 roll sub /wid exch def exch sub /hit exch def
- /pl aty hit .3 mul sub def /ph aty hit add .1 in sub def
- pl .1 in ph
- {
- dup pl sub ph pl sub div .7 mul .1 add setgray
- atx exch moveto wid 0 rlineto 0 hit rlineto
- wid -1 mul 0 rlineto closepath fill
- } for
- grestore
- dup 0 setgray true charpath stroke
- atx aty moveto stringwidth pop 0 rmoveto
- } bind def
-
- %%%%%%%%%%%%%%%% string Title - %%%%%%%%%%%%%%%%%%%%%%%%
- % Title prints a string in the title position of the page,
- % and shoots it full of holes!
- /Title
- {
- save
- exch /str exch def /border .2 in def /hit 40 def
- /NewCenturySchlbk-Bold findfont hit 1.5 mul scalefont setfont
- str stringwidth pop /lg exch def
- newpath 8.5 in lg sub 2 div 9.7 in moveto
- gsave
- currentpoint border sub exch border sub exch moveto
- lg border 2 mul add 0 rlineto 0 hit border 2 mul add rlineto
- lg -1 mul border 2 mul sub 0 rlineto closepath
- gsave .8 setgray fill grestore 2 setlinewidth 0 setgray stroke
- .5 setlinewidth
- grestore
- str length 1 sub 0 1 3 -1 roll
- { rand pop
- str exch 1 getinterval Shade
- } for
- 1 1 30
- {
- pop rand BIG div 2 div
- lg border 4 mul add mul 8.5 in lg sub 2 div add border sub
- rand BIG div 2 div
- hit border 4 mul add mul 10.1 in add border sub moveto
- circle
- } for
- 1 setlinewidth 0 setgray
- restore
- } bind def
-
- /Web
- {
- newpath
- 0 0 moveto
- 1 1 8 { pop 0.5 in 0 -3 in -3 in -2 in 0.5 in rcurveto 45 rotate } for
- } bind def
-
- %%%%%% xlow ylow width height grain ShadeBox - %%%%%%%%%%%%%%%%%%
- % shades in a box with increasingly darker horizontal rectangles.
- /ShadeBox
- {
- newpath
- 6 dict begin
- /grain exch def
- /height exch def
- /width exch def
- /ylow exch def
- /xlow exch def
- newpath
- ylow grain ylow height add grain sub
- {
- dup ylow sub height div .9 mul .1 add setgray % How dark to stop?
- xlow exch moveto width 0 rlineto
- 0 grain rlineto width neg 0 rlineto
- closepath fill
- } for
- end
- } bind def
-
- 1.5 in 1 in 6.5 in 5 in .05 in ShadeBox
-
- 8 in 4 in translate
- 0 setgray Web fill
- .2 in .2 in translate
- .5 setgray 10 setlinewidth Web fill
- .8 setgray 3 setlinewidth Web stroke
- grestoreall % Don't want all this to have an effect on text printing
- } bind def
-
- /EndPage
- {
- /pagenumber pagenumber 1 add def % Don't print a page number on titlepage
- showpage % A new page here really does mean start a new page.
- } bind def
-
- %% INITIALIZATION TO DO WHEN FILE IS LOADED %%
-
- /InitPage
- {
- /evenodd true def % if true use even-odd rule; false means winding rule
- /fillout false def % true means fill outside shape. false is inside.
-
- % Page Defaults
- /in { 72 mul } def
- /BM 0 in def % Absolute Bottom Margin for page
- /TM 11 in def % Absolute Top Margin for page
- /LM 0 in def % Absolute Left Margin for page
- /RM 8.5 in def % Absolute Right Margin for page
-
- userdict /pagenumber known not
- { /pagenumber 1 def } if % Initialize pagenumber if not done already
-
- /BIG 1073741824 def
- } bind def
-
- InitPage % Just loading this file initializes the page.
-